package com.example.JcGQS.util;

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

import java.util.List;

/**
 * 请求参数封装
 * @author 末日
 * @date 2023/11/21
 */
public class ParamUtil {
    
    
    /**
     * 解析jSON
     *
     * @param json
     *         要解析的json
     * @param key
     *         json键
     * @param objectClass
     *         返回类型
     *
     * @return T
     */
    public static <T> T resolveParam(String json, String key, Class<T> objectClass) {
        return new JSONObject(json).get(key, objectClass);
    }
    
    /**
     * 解析jSON为一个对象
     *
     * @param json
     *         待解析的json
     * @param beanClass
     *         返回对象类型
     *
     * @return T
     */
    public static <T> T resolveParamToBean(String json, Class<T> beanClass) {
        return JSONUtil.toBean(json, beanClass);
    }
    
    /**
     * 解析参数为list集合
     *
     * @param json
     *         待解析的json
     * @param key
     *         键
     * @param beanClass
     *         对象类型
     *
     * @return List<T>
     */
    public static <T> List<T> resolveParamToList(String json, String key, Class<T> beanClass) {
        JSONArray parseArray = JSONUtil.parseObj(json).getJSONArray(key);
        return parseArray.toList(beanClass);
    }
    
    
}
